Astrocade Tape Program Archive Record
-------------------------------------

Program Name:  Memory Display
Filename:      Memory Display (1979)(Chuck Thomka)(2000 Baud)(PD).wav
Released by:   Chuck Thomka
Appearance:    ARCADIAN, 1, no. 8 (July 1979): 67.
Notes:         - This program was typed into AstroBASIC on May 9, 2007
                 by Adam Trionfo.
               - The Program "Memory Display" is exactly as it appears
                 in the Arcadian newsletter except that line 4 has been turned
                 into a comment because it was for use with 300-BAUD Bally BASIC.
                 For those that are curious, line 4 says, ":RETURN" (this
                 command isn't even available anymore in AstroBASIC).

Description
-----------

This is a 2000 Baud BASIC program for use with a Bally Astrocade and Astrobasic.

This program displays input memory locations in both Hexadecimal format (with hex pairs in reverse order) and Bally BASIC decimal format.


Instructions
------------

This is a nice memory dump program that displays the decimal and hexadecimal location numbers (address) and data.  It will do whole blocks of dumps by giving a starting and ending address.  It will increment the address by the entered amount if you only want to check every 1000'th location, for example.

Use negative numbers to check the upper memory:

-32767D = $8001
     to
   -1D  = $FFFF

Additional Notes (by Adam Trionfo):

While you don't have to choose a step amount of two, is recommended since AstroBASIC stores values two bytes at a time.  Also, because of the unusual method that AstroBASIC stores data, the hex bytes are displayed in reversed order.  For example, memory locations $0000 and $0001 (of a 3159 ROM) holds $00F3, so "Memory Display" will show $F300.

Here is an example program run that displays the first fourteen bytes of the Astrocade 3159 system ROM:

FIRST LOCATION # = 0
LAST LOCATION # = 12
STEP AMOUNT = 2
     0 %0000 = (F300) -3328
     2 %0002 = (D3AF)-11345
     4 %0004 = (C308)-15608
     6 %0006 = (OC61)  3169
     8 %0008 = (07C3)  1987
    10 %000A = (1C20)  7200
    12 %000C = (1C3C)  7228
FIRST LOCATION # = 

The above is what is dispayed on the Astrocade screen.  If you take a look at those same memory locations in a hex editor on a PC, then you see this:

Offset  0  1  2  3  4  5  6  7  8  9  A  B  C  D
0000   00 F3 AF D3 08 C3 61 0C C3 07 20 1C 3C 1C

As you can see, the Astrocade displays the same output, but each hexadecimal pair is in reverse order.  This takes a little getting used to, but that is the way that Bally BASIC and AstroBASIC store memory and so it was the way that programs were written to display memory.  A modern program would do much better displaying memory in the proper byte order.  If you can overlook the unusual way that this program shows the memory, then this program works very well


Loading Instructions
--------------------

Plug audio cable into Astrobasic cartridge and headphone jack of computer speakers, then load program from Astrobasic with

:INPUT ;RUN

Press GO.  Then start playing the wav file; the program will start to load.  After the program finishes loading, type RUN and then press GO.

END OF FILE